package com.ruoyi.shopping.mapper;

import com.ruoyi.shopping.domain.CommodityType;
import com.ruoyi.shopping.domain.CommodityTypeRequest;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 商品类型管理Mapper接口
 * 
 * @author fxy
 * @date 2024-08-13
 */
@Mapper
public interface CommodityTypeMapper 
{
    /**
     * 查询商品类型管理
     * 
     * @param id 商品类型管理主键
     * @return 商品类型管理
     */
    public CommodityType selectCommodityTypeById(Long id);

    /**
     * 查询商品类型管理列表
     * 
     * @param commodityType 商品类型管理
     * @return 商品类型管理集合
     */
    public List<CommodityType> selectCommodityTypeList(CommodityType commodityType);

    /**
     * 新增商品类型管理
     * 
     * @param commodityType 商品类型管理
     * @return 结果
     */
    public int insertCommodityType(CommodityType commodityType);

    /**
     * 修改商品类型管理
     * 
     * @param commodityType 商品类型管理
     * @return 结果
     */
    public int updateCommodityType(CommodityType commodityType);

    /**
     * 删除商品类型管理
     * 
     * @param id 商品类型管理主键
     * @return 结果
     */
    public int deleteCommodityTypeById(Long id);

    /**
     * 批量删除商品类型管理
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteCommodityTypeByIds(Long[] ids);
    public  void insertBatch(@Param("list") List<CommodityType> categoryRecords);
    @Insert({
            "<script>",
            "INSERT INTO commodity_type (commodity_id, type, image, inventory) VALUES",
            "<foreach collection='categories' item='category' separator=','>",
            "(#{commodityId}, #{category.type}, #{category.image}, #{category.inventory})",
            "</foreach>",
            "</script>"
    })
    void insertCommodityType(@Param("commodityId") Long commodityId, @Param("categories") List<CommodityTypeRequest.Category> categories);
    //清空
    int clearSpecificationFields(Long id);
}
